home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume17 / mgr / part50 < prev    next >
Encoding:
Internet Message Format  |  1989-01-19  |  34.1 KB

  1. Subject:  v17i051:  MGR, Bellcore window manager, Part50/61
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4.  
  5. Submitted-by: Stephen A. Uhler <sau@bellcore.com>
  6. Posting-number: Volume 17, Issue 51
  7. Archive-name: mgr/part50
  8.  
  9.  
  10.  
  11.  
  12. #! /bin/sh
  13. # This is a shell archive.  Remove anything before this line, then unpack
  14. # it by saving it into a file and typing "sh file".  To overwrite existing
  15. # files, type "sh file -c".  You can also feed this as standard input via
  16. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  17. # will see the following message at the end:
  18. #        "End of archive 50 (of 61)."
  19. # Contents:  doc/usrman/doc.4
  20. # Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:58 1988
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'doc/usrman/doc.4' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'doc/usrman/doc.4'\"
  24. else
  25. echo shar: Extracting \"'doc/usrman/doc.4'\" \(31915 characters\)
  26. sed "s/^X//" >'doc/usrman/doc.4' <<'END_OF_FILE'
  27. X'\"                        Copyright (c) 1988 Bellcore
  28. X'\"                            All Rights Reserved
  29. X'\"       Permission is granted to copy or use this program, EXCEPT that it
  30. X'\"       may not be sold for profit, the copyright notice must be reproduced
  31. X'\"       on copies, and credit should be given to Bellcore where it is due.
  32. X'\"       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
  33. X'\"
  34. X'\"    $Header: doc.4,v 4.1 88/06/29 17:04:59 bianchi Exp $
  35. X'\"    $Source: /tmp/mgrsrc/doc/usrman/RCS/doc.4,v $
  36. X.Fh m_nomenu
  37. X.Fs m_nomenu 8 "Unselect a pop-up menu from the middle mouse button"
  38. XDeselect all menus.
  39. XNo menu will pop-up when the middle
  40. Xmouse button is pressed.
  41. XThis call does not delete the menu, it simply disassociates it
  42. Xfrom the button.
  43. X.Fe
  44. X.Fh m_nomenu2
  45. X.Fs m_nomenu2 8 "Unselect a pop-up menu from the end mouse button"
  46. XDeselect all menus.
  47. XNo menu will pop-up when the right
  48. Xmouse button is pressed.
  49. XThis call does not delete the menu, it simply disassociates it
  50. Xfrom the button.  This macro should be combined with
  51. X.Fr m_nomenu
  52. X but is separate for historical reasons.
  53. X.Fe
  54. X.Fh m_othersave id sub name
  55. X.Fs m_othersave 5 "Save another client's window image in a file"
  56. XThe bitmap contents of the window identified as
  57. X.Fi id . sub
  58. Xis saved in the file
  59. X.Fi name
  60. Xin bitmap format (see 
  61. X.I dump.h
  62. Xfor a description of the bitmap format).
  63. XThe
  64. X.I "window id"
  65. Xcan be determined either by calling
  66. X.Fr m_getinfo G_ALL
  67. X or
  68. Xfrom the event
  69. X.SM
  70. X.I  M_ACCEPT
  71. X.LG
  72. X(see
  73. X.Fr m_setevent
  74. X).
  75. XSee also
  76. X.Fr m_windowsave
  77. X and
  78. X.Fr m_bitsave
  79. X\&.
  80. X.Fe
  81. X.Fh m_pagemenu parent child
  82. X.Fs m_pagemenu 8 "Break a large menu into pages"
  83. XConnect menu 
  84. X.Fi child
  85. Xto the bottom of menu 
  86. X.Fi parent
  87. Xto permit
  88. Xa long menu to be paged.
  89. XMousing off the bottom of the
  90. X.Fi parent 
  91. Xmenu automatically pops-up the
  92. X.I child
  93. Xmenu, which
  94. Xin turn may be the parent of another menu.
  95. XSee also
  96. X.Fr m_unpagemenu
  97. X,
  98. X.Fr m_linkmenu
  99. X and
  100. X.Fr m_unlinkmenu
  101. X\&.
  102. X.Fe
  103. X.Fh m_pop
  104. X.Fs m_pop 10 "Pop the window context"
  105. XPop the window context.
  106. XThe last window context saved by calling
  107. X.Fr m_push
  108. X or
  109. X.Fr m_pushsave
  110. X is restored.
  111. XIf no environments have been pushed,
  112. X.Fr m_pop
  113. Xis ignored.
  114. X.Fe
  115. X.Fh m_popall
  116. X.Fs m_popall 10 "Pop all stacked window contexts"
  117. XLike
  118. X.Fr m_pop
  119. Xabove, except all environments pushed since the 
  120. Xfirst call to
  121. X.Fr m_setup
  122. Xare popped.
  123. XThe macro
  124. X.Fr m_popall
  125. X is typically
  126. Xused as part of the clean up before
  127. Xclient program termination.
  128. X.Fe
  129. X.Fh m_printstr string
  130. X.Fs m_printstr 2 "Print a string on the window"
  131. XPrint
  132. X.Fi string
  133. Xon the window at the current character cursor location.
  134. XThis is equivalent to the
  135. X.I stdio
  136. Xfunction
  137. X.I printf
  138. Xwith a 
  139. X.I %s
  140. Xformat specified and the output directed toward the file pointer
  141. X.I m_termout
  142. Xinstead of
  143. X.I stdout .
  144. X.Fe
  145. X.Fh m_push mode
  146. X.Fs m_push 10 "Stack the window context"
  147. XCertain parts (stack modes) of the current window environment may
  148. Xbe moved to a stack, to be restored at a later time with
  149. X.Fr m_pop
  150. Xor
  151. X.Fr m_popall
  152. X\&.
  153. XAny combination of the following pieces of the
  154. Xwindow environment, called a window context,
  155. Xmay be placed on the window stack.
  156. X.RS
  157. X.IP \fBP_BITMAP\fP 0.5i
  158. X.br
  159. XAll currently defined
  160. X.I scratchpad
  161. Xbitmaps
  162. Xare moved to the stack and become undefined in the current window context.
  163. X.IP \fBP_CURSOR\fP 0.5i
  164. X.br
  165. XThe current
  166. X.I character
  167. Xcursor
  168. Xand
  169. X.I "graphics point"
  170. Xpositions are saved on the stack.
  171. X.IP \fBP_EVENT\fP 0.5i
  172. X.br
  173. XAll currently defined events are moved to the stack and
  174. Xbecome undefined in the current window context.
  175. X.IP \fBP_FLAGS\fP 0.5i
  176. X.br
  177. XThe window modes, as set with
  178. X.Fr m_setmode
  179. Xare moved to the stack.
  180. XThe modes revert to their default settings in the current window context.
  181. X.IP \fBP_FONT\fP 0.5i
  182. X.br
  183. XThe current font setting is copied to the stack.
  184. XIf this font is subsequently deleted, by writing over it with a different
  185. Xfont, the original font setting is retained, even if it can no longer
  186. Xbe accessed using
  187. X.Fr m_font
  188. X\&.
  189. X.IP \fBP_MENU\fP 0.5i
  190. X.br
  191. XAll downloaded menus and menu links are moved to the the stack along with
  192. Xthe currently selected menu number.
  193. XThe menus become undefined in the current context.
  194. X.IP \fBP_MOUSE\fP 0.5i
  195. X.br
  196. XThe mouse cursor location
  197. Xis saved on the stack.
  198. XIts current location remains the same.
  199. X.IP \fBP_POSITION\fP 0.5i
  200. X.br
  201. XThe window size and location is saved on the stack.
  202. XThe current size and location are maintained.
  203. X.IP \fBP_TEXT\fP 0.5i
  204. X.br
  205. XThe text region location and size are saved on the stack.
  206. XThe text region in the current context is reset to the entire window.
  207. X.IP \fBP_WINDOW\fP 0.5i
  208. X.br
  209. XThe current image contents of the window is copied to the stack.
  210. XThis is done without altering the current contents of the window.
  211. X.RE
  212. XStack modes are combined by
  213. X.I or -ing
  214. Xthem together
  215. Xto form a saved window context, such as:    
  216. X.Fr m_push P_MENU|P_EVENT 
  217. X which will save all events, and menus but leave everything else
  218. Xalone.
  219. XAll stack modes that
  220. Xrequire client download data revert to their default settings
  221. Xwhen they are
  222. X.I pushed .
  223. XFor example, after
  224. X.Fr m_push P_MENU|P_EVENT|P_MOUSE
  225. X is called, no
  226. Xevents or menus are currently defined,
  227. Xbut the mouse remains where it is.
  228. XThe defined constant
  229. X.SM
  230. X.I P_ALL
  231. X.LG
  232. Xrefers to all of the modes.
  233. X.Fe
  234. X.Fh m_pushsave mode
  235. X.Fs m_pushsave 10 "Stack and save the window context"
  236. XCertain parts (stack modes) of the current window environment may
  237. Xbe copied to a stack, to be restored at a later time with
  238. X.Fr m_pop
  239. Xor
  240. X.Fr m_popall
  241. X\&.
  242. XThe macro
  243. X.Fr m_pushsave
  244. X differs from
  245. X.Fr m_push
  246. Xin that downloaded data, such as
  247. X.I menus
  248. X.I events
  249. Xor
  250. X.I scratchpad
  251. Xbitmaps
  252. Xare copied to the stack instead of moved,
  253. Xand thus remain in effect after the call to
  254. X.Fr m_pushsave
  255. X\&.
  256. XThe current window context is thus unaffected.
  257. XAny combination of the following pieces of the
  258. Xwindow environment may be copied to the window stack.
  259. X.RS
  260. X.IP \fBP_BITMAP\fP 0.5i
  261. X.br
  262. XAll currently defined
  263. X.I scratchpad
  264. Xbitmaps
  265. Xare copied to the stack.
  266. X.IP \fBP_CURSOR\fP 0.5i
  267. X.br
  268. XThe current
  269. X.I character
  270. Xand
  271. X.I graphics
  272. Xcursor positions are saved on the stack.
  273. X.IP \fBP_EVENT\fP 0.5i
  274. X.br
  275. XAll currently defined events are copied to the stack.
  276. X.IP \fBP_FLAGS\fP 0.5i
  277. X.br
  278. XThe window modes, as set with
  279. X.Fr m_setmode
  280. X, are copied to the stack.
  281. X.IP \fBP_FONT\fP 0.5i
  282. X.br
  283. XThe current font setting is copied to the stack.
  284. XIf this font is subsequently deleted, by writing over it with a different
  285. Xfont, the original font setting is retained, even if it can no longer
  286. Xbe accessed using
  287. X.Fr m_font
  288. X\&.
  289. X.IP \fBP_MENU\fP 0.5i
  290. X.br
  291. XAll downloaded menus and menu links are copied to the the stack along with
  292. Xthe currently selected menu number.
  293. X.IP \fBP_MOUSE\fP 0.5i
  294. X.br
  295. XThe mouse cursor location
  296. Xis saved on the stack.
  297. X.IP \fBP_POSITION\fP 0.5i
  298. X.br
  299. XThe window size and location are saved on the stack.
  300. X.IP \fBP_TEXT\fP 0.5i
  301. X.br
  302. XThe text region location and size are saved on the stack.
  303. X.IP \fBP_WINDOW\fP 0.5i
  304. X.br
  305. XThe current image contents of the window is copied to the stack.
  306. X.RE
  307. XStack modes are combined by
  308. X.I or -ing
  309. Xthem together 
  310. Xto form a saved window context, such as:    
  311. X.Fr m_push P_MENU|P_EVENT 
  312. X which will save all events, and menus but leave everything else
  313. Xalone.
  314. X.Fe
  315. X.Fh m_put string
  316. X.Fs m_put 12 "Save characters in the global snarf buffer"
  317. X.Fi String
  318. Xis put into the global
  319. X.I snarf
  320. Xbuffer.
  321. XThere is one common buffer
  322. Xfor all clients programs.
  323. XThe macro
  324. X.Fr m_snarf
  325. X is used to retrieve the contents of the buffer.
  326. XThe \*M system
  327. X.I cut
  328. Xfunction places text in this buffer, whereas 
  329. Xthe system
  330. X.I paste
  331. Xfunction pastes text from this buffer.
  332. X.Fe
  333. X.Fh m_putchar c
  334. X.Fs m_putchar 2 "Put a character on the window"
  335. XThe character
  336. X.Fi c
  337. Xis written in the window at the current character cursor
  338. Xlocation.
  339. XThis function is like the
  340. X.I stdio
  341. X.I putchar(c) ,
  342. Xonly directed toward the client's window.
  343. X.Fe
  344. X.Fh m_rcircle radius
  345. X.Fs m_rcircle 4 "Draw a circle at the graphics point"
  346. XA circle of radius
  347. X.Fi radius
  348. Xis drawn, centered at
  349. Xthe current
  350. X.I "graphics point" .
  351. XThe points at the edge of the circle are
  352. Xset, cleared or inverted
  353. Xdepending upon the last call to
  354. X.Fr m_func
  355. X\&.
  356. XCircles are always drawn as circles, both in
  357. X.I absolute
  358. Xand in
  359. X.I relative
  360. Xwindow coordinates.
  361. XThe
  362. X.Fi radius
  363. Xis scaled based upon the average
  364. X.Fi width
  365. Xand
  366. X.Fi height
  367. Xof the window.
  368. X.Fe
  369. X.Fh m_rellipse radius1 radius2
  370. X.Fs m_rellipse 4 "Draw an ellipse at the graphics point"
  371. XDraw an ellipse centered at
  372. Xthe
  373. X.I "graphics point" .
  374. XThe two radii,
  375. X.Fi radius1
  376. Xand
  377. X.Fi radius2
  378. Xspecify the major and minor axis.
  379. XThe ellipse is either
  380. Xset, cleared, or inverted
  381. Xdetermined by the last call to
  382. X.Fr m_func
  383. X\&.
  384. XIf the window is in
  385. X.I relative
  386. Xcoordinate mode,
  387. X.Fi radius1
  388. Xand
  389. X.Fi radius2
  390. Xare scaled based upon the average
  391. X.Fi width
  392. Xand
  393. X.Fi height
  394. Xof the window.
  395. X.Fe
  396. X.Fh m_resetesc
  397. X.Fs m_resetesc 1 "Restore the \*M escape character to '\\e033'"
  398. XThe \*M
  399. X.I escape
  400. Xcharacter is reset to its to default value ('\e033').
  401. XThis turns off the debugging mode turned on by
  402. X.Fr m_setesc
  403. X\&.
  404. X.Fh m_rfastdraw count data
  405. X.Fs m_rfastdraw 4 "Draw a group of fast vectors at the graphics point"
  406. XThe next
  407. X.Fi count
  408. Xbytes of
  409. X.Fi data
  410. Xare sent to \*M are to be interpreted as lines drawn in
  411. X.I "fast draw"
  412. Xmode,
  413. Xstarting at
  414. XThe current graphics point.
  415. X.I "Fast draw"
  416. Xmode permits the rapid drawing of short vectors
  417. Xby encoding an 
  418. X.I x,y
  419. Xdisplacement location in a single byte.
  420. XThe 
  421. X.I x
  422. Xcoordinate is contained in the most significant
  423. X4 bits, the
  424. X.I y
  425. Xcoordinate in the least significant 4 bits.
  426. XValues for
  427. X.I x
  428. Xand
  429. X.I y
  430. Xrepresent displacements from the previous location, and
  431. Xrange from +7 to -8.
  432. XA 7 is coded as 
  433. X.B 0xff ,
  434. Xa -8 as
  435. X.B 0x00 .
  436. XIf both 
  437. X.I x
  438. Xand
  439. X.I y
  440. Xare zero (i.e.
  441. X.B 0x8080 ).
  442. XThe next coordinate is taken to be a
  443. X.I move
  444. Xinstead of a
  445. X.I draw.
  446. XAn eight bit channel between \*M and the client program is required for
  447. X.I "fast draw"
  448. Xmode.
  449. XSee also
  450. X.Fr m_fastdraw
  451. X\&.
  452. X.Fe
  453. X.Fh m_right n
  454. X.Fs m_right 13 "Move character cursor right by tenths of a character width"
  455. XMove the character cursor right 
  456. X.Fi n
  457. Xtenths of a character width.
  458. XSee also
  459. X.Fr m_left
  460. X.Fr m_down
  461. Xand 
  462. X.Fr m_up
  463. X\&.
  464. X.Fe
  465. X.Fh m_scrollregion first_row last_row
  466. X.Fs m_scrollregion 3 "Set up a VT00 like scrolling region"
  467. XThis sets up a
  468. X.I "text region"
  469. Xas a
  470. X.I  VT100-like
  471. Xscrolling region.
  472. XThe entire width of the window
  473. Xfrom lines
  474. X.Fi first_row
  475. Xto
  476. X.Fi last_row
  477. Xinclusive becomes the 
  478. X.I "text region" .
  479. XSee also
  480. X.Fr m_textregion
  481. X\&.
  482. X.Fe
  483. X.Fh m_selectmenu n
  484. X.Fs m_selectmenu 8 "Select a pop-up menu for the middle mouse button"
  485. XThis macro is used to indicate menu 
  486. X.Fi n
  487. Xpops-up in response to pressing
  488. Xthe
  489. X.I middle
  490. Xmouse button.
  491. XMenus are downloaded (with
  492. X.Fr m_loadmenu
  493. X) first, then selected.
  494. XOnly one menu may be selected at a time on each button.
  495. XIf the button is already down when this call is made, and there is not currently
  496. Xa menu associated with the button, then the menu just selected pops-up
  497. Ximmediately.
  498. XThis last feature may be used to pop up different menus 
  499. Xin a context sensitive way.
  500. X.Fe
  501. X.Fh m_selectmenu2 n
  502. X.Fs m_selectmenu2 8 "Select a pop-up menu for the right mouse button"
  503. XThis macro is used to indicate menu 
  504. X.Fi n
  505. Xpops-up in response to pressing
  506. Xthe
  507. X.I right
  508. Xmouse button.
  509. XMenus are downloaded (with
  510. X.Fr m_loadmenu
  511. X) first, then selected.
  512. XThis macro functions the same as, and should be combined with
  513. X.Fr m_selectmenu
  514. X above, but exists separately for historical reasons.
  515. X.Fe
  516. X.Fh m_selectwin n
  517. X.Fs m_selectwin 11 "Select an alternate window for output"
  518. XSelect alternate window
  519. X.Fi n
  520. Xfor output.
  521. XAlternate windows are
  522. Xfirst created by
  523. X.Fr m_newwin
  524. X\&.
  525. XAll output goes to the selected
  526. Xwindow until either
  527. X.Fr m_selectwin
  528. Xis called to change windows,
  529. Xor the selected window is destroyed.
  530. XIf
  531. X.Fi n
  532. Xis 0 (zero) or the currently selected window is destroyed,
  533. Xthe main, or original window is selected.
  534. XInput from all windows is
  535. Xsend to the client program on the same input channel.
  536. XThe macro
  537. X.Fr m_setevent ACTIVATE
  538. X may be used to help decide what window generated the input
  539. Xby associating a unique string with each window's 
  540. X.SM
  541. X.I ACTIVATE
  542. X.LG
  543. Xevent.
  544. XThe
  545. X.I selected
  546. Xwindow 
  547. Xand the
  548. X.I active
  549. Xwindow are specified independently.
  550. XSelecting a window does not make it the 
  551. X.I active 
  552. Xwindow, and creating a new window, although it is created as the 
  553. X.I active
  554. Xwindow, is not automatically selected.
  555. X.Fe
  556. X.Fh m_sendme string
  557. X.Fs m_sendme 12 "Send string back to self"
  558. XThe argument
  559. X.Fi string
  560. Xis sent back to the client process
  561. Xas if it was typed in at the keyboard.
  562. X.Fe
  563. X.Fh m_sendto n string
  564. X.Fs m_sendto 12 "Send a message to another window"
  565. XThe message
  566. X.Fi string
  567. Xis send to window
  568. X.Fi n .
  569. XA unique window identifier,
  570. X.Fi n 
  571. Xis determined with either
  572. X.Fr m_setevent
  573. X using the 
  574. X.B %w
  575. Xoption,
  576. Xor with
  577. X.Fr m_getinfo
  578. X\&.
  579. XIn general, the window id
  580. X.Fi n
  581. Xis the process id (\c
  582. X.I pid )
  583. Xof the client program started by \*M
  584. Xwhen the window was created.
  585. XIf the target window has turned on
  586. X.SM
  587. X.B ACCEPT
  588. X.LG
  589. Xwith
  590. X.Fr m_setevent
  591. X,
  592. X.Fi string
  593. Xis received by the client program associated with the target window
  594. Xas part of the
  595. X.SM
  596. X.B ACCEPT
  597. X.LG
  598. Xevent.
  599. XGeneral write permissions must be disabled on the target client's
  600. X.I pseudo tty
  601. Xin order for the message to be received, to prevent unsuspecting 
  602. X.I shell s
  603. Xfrom interpreting messages sent by unscrupulous processes as commands.
  604. XSee also
  605. X.Fr m_broadcast
  606. X\&.
  607. X.Fe
  608. X.Fh m_setesc c
  609. X.Fs m_setesc 1 "Change the \*M escape character (for debugging)"
  610. XThis macro call causes the character
  611. X.Fi c
  612. Xto be used as the \*M
  613. Xescape character by the library package (instead of 
  614. X.I '\e033' ).
  615. XThis permits viewing
  616. Xthe output stream to \*M without causing the commands to
  617. Xbe executed.
  618. X.Fe
  619. X.Fh m_setecho
  620. X.Fs m_setecho 1 "Turn on terminal character echo"
  621. XTurn on character echoing, if possible.
  622. XCharacter echoing is normally disabled by clients to inhibit information
  623. Xfrom \*M, as from calls to 
  624. X.Fr m_getinfo
  625. X, from echoing on the window.
  626. X.Fe
  627. X.Fh m_setevent n string
  628. X.Fs m_setevent 9 "Set an event"
  629. XAn event string,
  630. X.Fi string
  631. Xis sent to the client program by \*M upon the
  632. Xoccurrence of the specified event
  633. X.Fi n .
  634. XThe event string is typically
  635. Xread by the client program using
  636. X.Fr m_gets
  637. X\&.
  638. XEvent strings are never sent in response to an event unless specifically
  639. Xrequested by the client program.
  640. XEvents are one of the following types.
  641. X.RS
  642. X.IP \fBACTIVATE\fP 0.5i
  643. X.br
  644. XThe window became the
  645. X.I active
  646. Xwindow.
  647. XIt is at the front of the display, and is currently receiving
  648. Xboth mouse and keyboard input.
  649. X.IP \fBBUTTON_1\fP 0.5i 
  650. X.br
  651. XThe right
  652. Xmouse button was depressed.
  653. XThis event is sent only to the
  654. X.I active
  655. Xwindow.
  656. X.IP \fBBUTTON_1U\fP 0.5i
  657. X.br
  658. XThe right mouse button was released.
  659. XThis event is sent only to the
  660. X.I active
  661. Xwindow.
  662. X.IP \fBBUTTON_2\fP 0.5i
  663. X.br
  664. XThe middle mouse button was depressed.
  665. XThis event is sent only to the
  666. X.I active
  667. Xwindow.
  668. X.IP \fBBUTTON_2U\fP 0.5i
  669. X.br
  670. XThe middle mouse button was released.
  671. XThis event is sent only to the
  672. X.I active
  673. Xwindow.
  674. X.IP \fBCOVERED\fP 0.5i
  675. X.br
  676. XThe window was partially or completely obscured by another window.
  677. X.IP \fBDEACTIVATE\fP 0.5i
  678. X.br
  679. XThe window was deactivated, it is no longer the
  680. X.I active
  681. Xwindow.
  682. X.IP \fBREDRAW\fP 0.5i
  683. X.br
  684. XThe display was redrawn, either by
  685. Xselecting the
  686. X.I redraw
  687. Xoption from the system menu, or by keying
  688. X.I \s-2LEFT\s+2-r
  689. Xfrom the keyboard.
  690. XOnly windows that are exposed receive the 
  691. X.SM
  692. X.I REDRAW
  693. X.LG
  694. Xevent.
  695. XThe images of obscured windows are restored automatically by \*M.
  696. XThe client program is expected to regenerate the contents of its
  697. Xwindow in response to the
  698. X.SM
  699. X.I REDRAW
  700. X.LG
  701. Xevent.
  702. X.IP \fBRESHAPE\fP 0.5i
  703. X.br
  704. XThe window was reshaped.
  705. XIf the user selects the system
  706. X.I reshape
  707. Xoption,
  708. Xthe 
  709. X.SM
  710. X.I RESHAPE
  711. X.LG
  712. Xevent is sent, even if the window stays the same shape.
  713. X.IP \fBUNCOVERED\fP 0.5i
  714. X.br
  715. XThe window, previously obscured, was uncovered.
  716. XIf the window also became the 
  717. X.I active 
  718. Xwindow, the
  719. X.SM
  720. X.I UNCOVERED
  721. X.LG
  722. Xevent is sent
  723. Xbefore the
  724. X.SM
  725. X.I ACTIVATE
  726. X.LG
  727. Xevent.
  728. X.IP \fBMOVE\fP 0.5i
  729. X.br
  730. XThe window was moved.
  731. X.IP \fBDESTROY\fP 0.5i
  732. X.br
  733. XThe window was destroyed.
  734. XOnly
  735. X.I alternate
  736. Xwindows
  737. X(as created by
  738. X.Fr m_newwin
  739. X) cause 
  740. X.SM
  741. X.I DESTROY
  742. X.LG
  743. Xevents to be sent.
  744. XIf the
  745. X.I main 
  746. Xwindow is destroyed,
  747. Xthe client program is sent a
  748. X.I hangup
  749. Xsignal, and its connection
  750. Xto \*M is severed.
  751. X.IP \fBACCEPT\fP 0.5i
  752. X.br
  753. XMessages are accepted from client programs running in other windows
  754. X(see
  755. X.Fr m_sendto
  756. X\&).
  757. XThe content of the message is obtained by specifying the 
  758. X.Fi %m
  759. Xparameter as part of the event string, as is fully described below.
  760. X.IP \fBNOTIFY\fP 0.5i
  761. X.br
  762. XRegister a name with \*M, and make this name available to client programs.
  763. XThis name is available to other clients, either by a call to 
  764. X.Fr m_getinfo G_NOTIFY
  765. X or with the
  766. X.Fi %n
  767. Xparameter described below.
  768. XUnlike the other events, 
  769. Xthe
  770. X.I notify
  771. Xstring is never sent back to the client program by \*M, but is
  772. Xused to register a name for the window.
  773. X.IP \fBSNARFED\fP 0.5i
  774. X.br
  775. XText was put into the snarf buffer either by a client program with
  776. X.Fr m_put
  777. X or by use of the system
  778. X.I cut
  779. Xfunction.
  780. X.IP \fBPASTE\fP 0.5i
  781. X.br
  782. XText is about to arrive as a result of the system
  783. X.I paste function.
  784. X.RE
  785. X
  786. XSome
  787. X.I event
  788. Xstrings may contain substitutable parameters in the
  789. Xmanner of
  790. X.I printf
  791. Xformat specifiers (i.e. %X).
  792. XThese parameters
  793. Xare applicable only to certain types of events.
  794. XIn any case, the
  795. X.B %
  796. Xcharacter may be forced by doubling it, as in
  797. X.B %% .
  798. XWhere more than one data item replaces the format specifier, 
  799. Xthe items are separated by 
  800. Xa
  801. X.I space
  802. Xcharacter.
  803. XFor the event strings
  804. X.Fi BUTTON_1
  805. Xand
  806. X.Fi BUTTON_2 ,
  807. Xseveral parameters cause \*M to sweep out some object in response to
  808. Xmouse movement, and report back the size of the swept object when the button
  809. Xis released.
  810. XAny one of lines, boxes, text, or rectangles may be swept out with 
  811. Xthis mechanism.
  812. XInitial parameters may be associated with a sweep event by listing them
  813. Xas comma separated integers following the 
  814. X.B %
  815. Xand preceding the sweep command character.
  816. XThe parameters (if any) set the initial size of the object to be swept, 
  817. Xin the same coordinate system in which the sweep extend is reported.
  818. X.RS
  819. X.IP \fB%r\fP 0.5i
  820. XDepressing the button causes \*M to
  821. Xsweep out a rectangle in response to moving the mouse,
  822. Xin a manner similar to the system
  823. X.I reshape
  824. Xfunction.
  825. XThe initial parameters set the initial width and height of the rectangle.
  826. XWhen the button is released,
  827. Xthe coordinates of the
  828. X.I starting
  829. Xand
  830. X.I ending
  831. Xpoints of the rectangle in response to moving the mouse, in
  832. X.I window
  833. Xcoordinates,
  834. Xare substituted for the
  835. X.B %r .
  836. X.IP \fB%R\fP 0.5i
  837. XDepressing the button causes \*M to
  838. Xsweep out a rectangle,
  839. Xas in
  840. X.B %r
  841. Xabove,
  842. Xonly the the result is in 
  843. X.I display coordinates.
  844. X.IP \fB%b\fP 0.5i
  845. XDepressing the button causes \*M to
  846. Xmove a rectangle in response to moving the mouse,
  847. Xin a manner similar to the system
  848. X.I move
  849. Xfunction.
  850. XThe initial parameters set the initial width and height of the rectangle
  851. Xto be moved.
  852. XWhen the button is released,
  853. Xthe current coordinates of the box's corner
  854. Xis returned in
  855. X.I window
  856. Xcoordinates,
  857. Xsubstituted for the
  858. X.B %b .
  859. X.IP \fB%B\fP 0.5i
  860. XDepressing the button causes \*M to
  861. Xmove a rectangle in response to moving the mouse,
  862. Xin a manner similar to the system
  863. X.I move
  864. Xfunction.
  865. XThe initial parameters set the initial width and height of the rectangle
  866. Xto be moved.
  867. XWhen the button is released,
  868. Xthe current coordinates of the box's corner
  869. Xis returned in
  870. X.I display
  871. Xcoordinates,
  872. Xsubstituted for the
  873. X.B %b .
  874. X.IP \fB%l\fP 0.5i
  875. XDepressing the button causes \*M to
  876. Xsweep out a line.
  877. XOne end of the line remains fixed at the
  878. X.I "graphics point"
  879. Xwhile the other end of the line tracks the mouse position.
  880. XThe initial end point of the line may be specified as a displacement
  881. Xfrom the graphics point as part of the initial parameters.
  882. XWhen the button is released,
  883. Xthe coordinates of the
  884. X.I starting
  885. Xand
  886. X.I ending
  887. Xpoints of the line, in
  888. X.I window
  889. Xcoordinates,
  890. Xare substituted for the
  891. X.B %l .
  892. X.IP \fB%t\fP 0.5i
  893. XDepressing the button causes \*M to
  894. Xsweep out text, in a manner equivalent to the system
  895. X.I cut
  896. Xfunction.
  897. XUpon the release of the button, the
  898. X.B %t
  899. Xis replaced by the starting character coordinate of the 
  900. X.I cut
  901. Xregion, followed by character distance to the ending point
  902. Xin columns and lines respectively.
  903. XFor example, The event string 
  904. X\fIsweep[\fP\fB%t\fP\fI]\fP
  905. Xmight return
  906. X\fIsweep[\fP\fB17 5 6 0\fP\fI]\fP,
  907. Xindicating the user swept out a six character word on a single
  908. Xline, starting on
  909. X.Fi column
  910. X17,
  911. X.Fi row
  912. X5.
  913. XAn inital size may ber specified in number of rows and number of
  914. Xcolumns.
  915. X.RE
  916. XThe remaining format specifiers are replaced by the information
  917. Xdescribed below No sweep action is performed.
  918. X.RS
  919. X.IP \fB%p\fP 0.5i
  920. XThe
  921. X.B %p
  922. Xis replaced by the current mouse coordinates, in
  923. X.I window
  924. Xcoordinates.
  925. X.IP \fB%P\fP 0.5i
  926. XThe
  927. X.B %P
  928. Xis replaced by the current mouse coordinates, in
  929. X.I character
  930. Xcoordinates.
  931. X.IP \fB%n\fP 0.5i
  932. XIf the mouse cursor is over a window whose
  933. X.SM
  934. X.Fi NOTIFY
  935. X.LG
  936. Xevent is set,
  937. Xthe text of that message is substituted for the
  938. X.B %n .
  939. X.IP \fB%w\fP 0.5i
  940. XIf the mouse cursor is over a window whose
  941. X.SM
  942. X.Fi NOTIFY
  943. X.LG
  944. Xevent is set,
  945. Xthe 
  946. X.Fi window_id
  947. Xof the clicked on window
  948. Xis substituted for the
  949. X.B %w .
  950. XThis
  951. X.Fi window_id
  952. Xmay be used by
  953. X.Fr m_sendto
  954. Xto send the clicked-on window a message.
  955. X.IP \fB%S\fP 0.5i
  956. XIf the mouse cursor is over a window whose
  957. X.SM
  958. X.Fi NOTIFY
  959. X.LG
  960. Xevent is set,
  961. Xthe length of that message is substituted for the
  962. X.B %S .
  963. X.RE
  964. X.sp
  965. XThe 
  966. X.SM
  967. X.Fi ACCEPT
  968. X.LG
  969. Xevent is used to receive messages from other client programs.
  970. XThe following substituteable parameters may be used as part of the
  971. Xevent string.
  972. X.RS
  973. X.IP \fB%f\fP 0.5i
  974. XThe
  975. X.Fi window_id
  976. Xof message sender, as used in
  977. X.Fr m_sendto
  978. X, replaces the
  979. X.B %f .
  980. X.IP \fB%m\fP 0.5i
  981. XThe text of message sent by the other client program
  982. Xreplaces the
  983. X.B %m
  984. X.IP \fB%s\fP 0.5i
  985. XThe length of the message, in characters,
  986. Xreplaces the
  987. X.B %s .
  988. XFor example, a call to
  989. X.TS
  990. Xcenter box;
  991. Xc.
  992. Xm_setevent(ACCEPT,"Message from (\fB%f\fP), (\fB%s\fP) long is: \fB%m\fP")
  993. X.TE
  994. Xmight cause \*M to return
  995. X.TS
  996. Xcenter box;
  997. Xc.
  998. XMessage from (\fB3214\fP), (\fB2\fP) long is: \fBHI\fP
  999. X.TE
  1000. Xafter the client program whose
  1001. X.I "window id"
  1002. Xis
  1003. X.I 3214
  1004. Xuses
  1005. X.Fr m_sendto
  1006. Xto send the message
  1007. X\fI"HI\|"\fP.
  1008. X.IP \fB%p\fP 0.5i
  1009. XAs with the 
  1010. X.SM
  1011. X.Fi BUTTON
  1012. X.LG
  1013. Xevents above,
  1014. X.B %p
  1015. Xis replaced by the current mouse position in
  1016. X.I window
  1017. Xcoordinates.
  1018. X.IP \fB%P\fP 0.5i
  1019. XAs with the 
  1020. X.SM
  1021. X.Fi BUTTON
  1022. X.LG
  1023. Xevents above,
  1024. X.B %P
  1025. Xis replaced by the current mouse position in
  1026. X.I character
  1027. Xcoordinates.
  1028. X.RE
  1029. XFor the
  1030. X.SM
  1031. X.Fi SNARFED
  1032. X.LG
  1033. Xevent string,
  1034. Xthe following substitution parameters are recognized.
  1035. X.RS
  1036. X.IP \fB%f\fP 0.5i
  1037. XThe 
  1038. X.I "window id"
  1039. Xof the window filling the
  1040. X.I snarf
  1041. Xbuffer replaces the
  1042. X.B %f .
  1043. X.IP \fB%c\fP 0.5i
  1044. XThe current length of the
  1045. X.I snarf
  1046. Xbuffer, in characters,
  1047. Xreplaces the
  1048. X.B %c .
  1049. X.IP \fB%C\fP 0.5i
  1050. XThe contents of the 
  1051. X.I snarf
  1052. Xbuffer replaces the
  1053. X.B %C .
  1054. XAt present, only the first 250 characters of the 
  1055. X.I snarf
  1056. Xbuffer may be returned via the
  1057. X.B %C
  1058. Xparameter.
  1059. XUse
  1060. X.Fr m_snarf
  1061. Xto read the entire buffer.
  1062. X.RE
  1063. X.sp
  1064. XThe
  1065. X.SM
  1066. X.Fi PASTE
  1067. X.LG
  1068. Xevent string,
  1069. Xrecognizes the
  1070. X.B %c
  1071. Xspecifier as described under
  1072. X.SM
  1073. X.I SNARFED
  1074. X.LG
  1075. Xabove.
  1076. X.Fe
  1077. X.Fh m_setmode mode
  1078. X.Fs m_setmode 6 "Set a window mode"
  1079. XVarious window modes may be
  1080. X.I set
  1081. Xor
  1082. X.I cleared
  1083. X(see
  1084. X.Fr m_clearmode
  1085. X)
  1086. Xindependently.
  1087. XThese modes are:
  1088. X.RS
  1089. X.IP \fBM_STANDOUT\fP 0.5i
  1090. XThe window is put in standout mode.
  1091. XAll characters
  1092. Xare written with their foreground and background
  1093. Xcolors reversed.
  1094. X.IP \fBM_WOB\fP 0.5i
  1095. XThe sense of
  1096. X.I white
  1097. Xand
  1098. X.I black
  1099. Xis reversed for the entire window,
  1100. Xnot just for characters as is
  1101. X.SM
  1102. X.B M_STANDOUT .
  1103. X.LG
  1104. X.IP \fBM_AUTOEXPOSE\fP 0.5i
  1105. XThe next character to be typed on the window
  1106. Xcauses it to automatically become the
  1107. X.I active
  1108. Xwindow.
  1109. X.IP \fBM_BACKGROUND\fP 0.5i
  1110. XOutput goes to the window even if it is 
  1111. Xpartially or totally obscured.
  1112. XThe data in exposed portions of the window is seen immediately.
  1113. XData in covered portions of the window is saved by \*M and restored 
  1114. Xwhen the covered portions are exposed.
  1115. X.IP \fBM_NOINPUT\fP 0.5i
  1116. XKeyboard input is prohibited.
  1117. XAll input from
  1118. Xthe keyboard is held buffered by \*M until
  1119. Xeither
  1120. X.SM
  1121. X.B M_NOINPUT
  1122. X.LG
  1123. Xis cleared, or a different
  1124. Xwindow is made the
  1125. X.I active
  1126. Xwindow.
  1127. XIn the latter case
  1128. Xthe input goes to the newly activated
  1129. Xwindow.
  1130. XThis flag is automatically turned
  1131. Xoff when the user activates the window.
  1132. XThis feature is for client programs that want one of their
  1133. Xwindows to come to the front just long enough to notify the
  1134. Xuser of some event, but do not want to accidently intercept keyboard
  1135. Xinput while the user is merrily typing to some other client.
  1136. X.IP \fBM_NOWRAP\fP 0.5i
  1137. XThe character cursor does not automatically jump to the left edge of
  1138. Xthe next line as it reaches the right edge of its text region.
  1139. XAfter the right margin is passed,
  1140. Xthe cursor and any subsequent text disappear past the right
  1141. Xedge of the window.
  1142. X.IP \fBM_OVERSTRIKE\fP 0.5i
  1143. XText is written to the window with the mode
  1144. Xspecified by
  1145. X.Fr m_func
  1146. X instead of the normal
  1147. Xcopy mode.
  1148. XIn copy mode, the characters completely obliterate their destination
  1149. Xinstead of combining with it.
  1150. X.IP \fBM_ABS\fP 0.5i
  1151. X.br
  1152. XThe window is set to 
  1153. X.I absolute
  1154. Xcoordinate mode.
  1155. XThe upper left edge of the window, just inside
  1156. Xthe border is at position
  1157. X.Fr "" 0  0
  1158. X\&.
  1159. XAll other locations
  1160. Xare measured relative to that corner in pixels.
  1161. X.IP \fBM_ACTIVATE\fP 0.5i
  1162. XThe window is made the
  1163. X.I active
  1164. Xwindow,  pops to the front of the display,
  1165. Xand obtains all keyboard and mouse input.
  1166. X.IP \fBM_SNARFLINES\fP 0.5i
  1167. XThe system
  1168. X.I cut
  1169. Xfunction only
  1170. Xcuts entire lines.
  1171. XIf any text on a line is swept out, the entire line of text
  1172. Xis included.
  1173. X.IP \fBM_SNARFTABS\fP 0.5i
  1174. XThe system
  1175. X.I cut
  1176. Xfunction attempts to turn
  1177. Xwhite space into a minimal combination of spaces and tabs.
  1178. XTab are set at every 8 columns.
  1179. X.IP \fBM_SNARFHARD\fP 0.5i
  1180. XThe system
  1181. X.I cut
  1182. Xfunction attempts to cut
  1183. Xtext even if the window contents have been corrupted.
  1184. XUnidentifyable characters are returned as
  1185. X.I C_NOCHAR
  1186. X(\'?\').
  1187. X.IP \fBM_STACK\fP 0.5i
  1188. XAny events pushed on the window stack
  1189. Xwhen this flag is set will be sent in addition to
  1190. Xany currently active events. 
  1191. XThis setting is useful for filters which need to receive events, yet
  1192. Xstill permit clients running under them to receive events as well.
  1193. X.RE
  1194. X.Fe
  1195. X.Fh m_setnoecho
  1196. X.Fs m_setnoecho 1 "Turn off character echo"
  1197. XCharacter echoing to the window is disabled if possible.
  1198. XCharacter echoing is normally disabled by clients to inhibit information
  1199. Xfrom \*M, as from calls to 
  1200. X.Fr m_getinfo
  1201. X from echoing on the window.
  1202. X.Fe
  1203. X.Fh m_setnoraw
  1204. X.Fs m_setnoraw 1 "Enable normal character input processing (line mode)"
  1205. XNormal terminal input processing is in effect.
  1206. XInput is buffered by lines, and all normal line editting
  1207. Xand keyboard interrupt generation
  1208. Xis in effect.
  1209. X.Fe
  1210. X.Fh m_setraw
  1211. X.Fs m_setraw 1 "Disable all character input processing (raw mode)"
  1212. XEvery character is available as entered, no input processing is 
  1213. Xdone.
  1214. XThis is typically called
  1215. X.I raw
  1216. Xmode.
  1217. XRaw mode is not always available, in which case the macro call is
  1218. Xignored.
  1219. X.Fe
  1220. X.Fh m_shapewindow X Y Dwidth Dheight
  1221. X.Fs m_shapewindow 6 "Reposition a window"
  1222. XThe window is reshaped to
  1223. Xposition
  1224. X.Fr "" X Y
  1225. X and with size
  1226. X.Fi Dwidth
  1227. Xby
  1228. X.Fi Dheight .
  1229. XAs only the
  1230. X.I active
  1231. Xwindow may be reshaped,
  1232. X.Fr m_shapewindow
  1233. Xactivates the window if it is not already active.
  1234. XThe new size of the window is not guaranteed;
  1235. Xthe
  1236. X.I width
  1237. Xor
  1238. X.I height
  1239. Xmay be truncated to the right or bottom edges of the display.
  1240. XThe macro
  1241. X.Fr m_getinfo
  1242. Xcan be used to determine the actual window size.
  1243. X.Fe
  1244. X.Fh m_size columns rows
  1245. X.Fs m_size 6 "Resize a window to a specified number of rows and columns"
  1246. XThe size of the window is changed so that it fits exactly
  1247. X.Fi columns
  1248. Xby
  1249. X.Fi rows
  1250. Xof characters in the current font.
  1251. XThe window may be truncated at the right or bottom edge of the display
  1252. Xif it is too large to fit on the display at its current position.
  1253. X.Fe
  1254. X.Fh m_sizeall X Y columns rows
  1255. X.Fs m_sizeall 6 "Reposition a window with a given number of rows and columns"
  1256. XThe window is reshaped to position
  1257. X.Fr "" X Y
  1258. X on the display, and resized to fit
  1259. X.Fi columns
  1260. Xand
  1261. X.Fi rows
  1262. Xof text.
  1263. XAs only the
  1264. X.I active
  1265. Xwindow may be reshaped,
  1266. X.Fr m_shapewindow
  1267. X activates the window if it is not already active.
  1268. XThe new size of the window is not guaranteed;
  1269. Xthe
  1270. X.I width
  1271. Xor
  1272. X.I height
  1273. Xmay be truncated to the right or bottom edges of the display.
  1274. XThe macro 
  1275. X.Fr m_getinfo
  1276. Xcan be used to determine the actual window size.
  1277. X.Fe
  1278. X.Fh m_snarf
  1279. X.Fs m_snarf 12 "Retrieve the contents of the global snarf buffer"
  1280. XThe application is sent the contents of the global snarf buffer,
  1281. Xif any, as specified by the last call by a client programs
  1282. Xcall to
  1283. X.Fr m_put
  1284. X or by use of the system
  1285. X.I cut
  1286. Xfunction.
  1287. X.Fe
  1288. X.Fh m_sleep
  1289. X.Fs m_sleep 13 "Do nothing"
  1290. XThis call causes \*M to suspend the processing
  1291. Xof characters to the window.
  1292. XAfter a chunk of output for all other windows has been processed,
  1293. Xoutput processing resumes.
  1294. XThis does not normally take very long, making
  1295. X.Fr m_sleep
  1296. X almost a 
  1297. X.I no-op.
  1298. X.Fe
  1299. X.Fh m_standend
  1300. X.Fs m_standend 3 "Turn off reverse video characters"
  1301. XInverse video mode as set by
  1302. X.Fr m_standout
  1303. X is turned off.
  1304. XThis is exactly equivalent to
  1305. X.Fr m_clearmode M_STANDOUT
  1306. X\&.
  1307. X.Fe
  1308. X.Fh m_standout
  1309. X.Fs m_standout 3 "Turn on reverse video characters"
  1310. XInverse video mode is turned on.
  1311. XThis is exactly equivalent to
  1312. X.Fr m_setmode M_STANDOUT
  1313. X\&.
  1314. XThe color of the characters and their backgrounds are interchanged.
  1315. X.Fe
  1316. X.Fh m_stringto to x_dst y_dst string
  1317. X.Fs m_stringto 4 "Print a string to an scratchpad bitmap"
  1318. XThe text
  1319. X.Fi string
  1320. Xis printed
  1321. Xstarting at the location
  1322. X.Fr "" x_dst y_dst
  1323. X on 
  1324. X.I scratchpad
  1325. Xbitmap
  1326. X.Fi to .
  1327. XThe text is clipped to fit in the bitmap, and no special command processing
  1328. Xis done on
  1329. X.Fi string.
  1330. XIf 
  1331. X.Fi to
  1332. Xis 0 (zero),
  1333. XThe text is printed on the window, but
  1334. X.I "text region"
  1335. Xboundaries are ignored.
  1336. XThis is the only way to get text into a window outside of the
  1337. X.I "text region" .
  1338. X.Fe
  1339. X.Fh m_textregion x y wide high
  1340. X.fs 3 "create a text region"
  1341. XA subregion within the current window
  1342. Xstarting at
  1343. X.Fr "" x y
  1344. X and of size
  1345. X.Fi wide
  1346. Xby
  1347. X.Fi high
  1348. Xis defined within which all text is restricted.
  1349. XAll functions and information that deals in
  1350. X.I character
  1351. Xcoordinates views the text region as if it was the entire window.
  1352. XAs soon as the text region is defined, the character cursor is
  1353. Xmoved to row and column
  1354. X.Fr "" 0 0
  1355. X,
  1356. Xwhich is now located at the point
  1357. X.Fr "" x y
  1358. X\&.
  1359. XGraphics output is not affected by text regions.
  1360. X.Fe
  1361. X.Fh m_textreset
  1362. X.Fs m_textreset 3 "Reset the text region to the entire window"
  1363. XThe
  1364. X.I "text region"
  1365. X(defined by a call to
  1366. X.Fr m_textregion
  1367. X) is reset to be the entire window.
  1368. XThis is the default setting.
  1369. X.Fe
  1370. X.Fh m_unlinkmenu parent item
  1371. X.Fs m_unlinkmenu 8 "Unlink a menu"
  1372. XThe menu link associating a child menu with
  1373. Xthe menu
  1374. X.Fi parent
  1375. Xat
  1376. X.Fi item
  1377. X(counting from zero) is removed
  1378. X(see also
  1379. X.Fr m_linkmenu
  1380. X\&).
  1381. XThis function does not change the menus, only their
  1382. Xconnections.
  1383. X.Fe
  1384. X.Fh m_unpagemenu parent
  1385. X.Fs m_unpagemenu 8 "Disconnect two pages of a paged menu"
  1386. XThe link associating the menu
  1387. X.Fi parent
  1388. Xwith a
  1389. X.I child
  1390. Xmenu is removed.
  1391. XSee also
  1392. X.Fr m_pagemenu
  1393. X\&.
  1394. X.Fe
  1395. X.Fh m_up n
  1396. X.Fs m_up 13 "Move character cursor up by tenths of a character height"
  1397. XMove the character cursor up 
  1398. X.Fi n
  1399. Xtenths of a character height.  This may cause the window to scroll down.
  1400. XSee also
  1401. X.Fr m_left
  1402. X.Fr m_right
  1403. Xand 
  1404. X.Fr m_down
  1405. X\&.
  1406. X.Fe
  1407. X.Fh m_whatsat X Y
  1408. X.Fs m_whatsat 7 "Find out what is at a particular display location"
  1409. X\*M returns to the client program a line indicating what is at the
  1410. X.I display
  1411. Xcoordinates
  1412. X.Fr "" X Y
  1413. X\&.
  1414. XIf that location is occupied by a window,
  1415. Xa line containing the window's controlling terminal, alternate window number,
  1416. Xand
  1417. X.I "window id"
  1418. Xis returned in a space separated list.
  1419. XIf the location
  1420. X.Fr "" X Y
  1421. X is not in a window, \*M returns a newline.
  1422. X.Fe
  1423. X.Fh m_windowsave name
  1424. X.Fs m_windowsave 5 "Save the window image on a file"
  1425. XThe current image contents of the window is saved in the file
  1426. X.Fi name
  1427. Xon the \*M-host machine in \*M bitmap
  1428. Xformat.
  1429. XFile names beginning with "./" are evaluated relative to the current directory
  1430. Xwhen \*M was started.
  1431. XSee also
  1432. X.Fr m_othersave
  1433. X and
  1434. X.Fr m_bitsave
  1435. X\&.
  1436. X.Fe
  1437. END_OF_FILE
  1438. # end of 'doc/usrman/doc.4'
  1439. fi
  1440. echo shar: End of archive 50 \(of 61\).
  1441. cp /dev/null ark50isdone
  1442. MISSING=""
  1443. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
  1444.     21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
  1445.     38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
  1446.     55 56 57 58 59 60 61 ; do
  1447.     if test ! -f ark${I}isdone ; then
  1448.     MISSING="${MISSING} ${I}"
  1449.     fi
  1450. done
  1451. if test "${MISSING}" = "" ; then
  1452.     echo You have unpacked all 61 archives.
  1453.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1454. else
  1455.     echo You still need to unpack the following archives:
  1456.     echo "        " ${MISSING}
  1457. fi
  1458. ##  End of shell archive.
  1459. exit 0
  1460.